package com.demo.test.utils;

public enum LossFunction {
    //也称为MSE（Mean Square Error，均方误差），它计算的是模型预测值与实际值之间差的平方的均值。
    MSE,
    //（Absolute Loss，绝对损失）: 它计算的是模型预测值与实际值之间差的绝对值的均值。
    L1,
    //Cross-Entropy Loss，交叉熵损失）: 在分类问题中常用，计算的是模型预测的概率分布和实际的概率分布之间的KL散度（Kullback-Leibler Divergence）
    XENT,
    //（Multi-Class Cross-Entropy Loss，多类交叉熵损失）: 在多类分类问题中常用，计算的是模型预测的概率分布和实际的概率分布之间的KL散度。
    MCXENT,
    //（Sparse Multi-Class Cross-Entropy Loss，稀疏多类交叉熵损失）: 适用于类别不均衡的问题。
    SPARSE_MCXENT,
    //（Squared Loss，平方损失）: 计算的是模型预测值与实际值之间差的平方。
    SQUARED_LOSS,
    //（Reconstruction Cross-Entropy Loss，重构交叉熵损失）: 用于重构问题，比如隐式语义模型（Latent Semantic Model, LSM）
    RECONSTRUCTION_CROSSENTROPY,
    //（Negative Log-Likelihood Loss，负对数似然损失）: 在回归问题中常用。
    NEGATIVELOGLIKELIHOOD,
    //（Cosine Proximity Loss，余弦接近度损失）: 计算的是模型预测向量和实际向量之间的余弦相似度。
    COSINE_PROXIMITY,
    //（Hinge Loss，铰链损失）: 在支持向量机（SVM）和一些类型的神经网络中常用。
    HINGE,
    //（Squared Hinge Loss，平方铰链损失）: 是HINGE的平方版本。
    SQUARED_HINGE,
    //（Kullback-Leibler Divergence Loss，KL散度损失）: 计算的是模型预测的概率分布和实际的概率分布之间的KL散度。
    KL_DIVERGENCE,
    //（Mean Absolute Error Loss，平均绝对误差损失）: 计算的是模型预测值与实际值之间差的绝对值的均值。
    MEAN_ABSOLUTE_ERROR,
    //（Euclidean Loss，欧几里得损失）: 是MEAN_SQUARED_ERROR的别名。
    L2,
    //（Mean Absolute Percentage Error Loss，平均绝对百分比误差损失）: 计算的是模型预测值与实际值之间差的绝对值占总值的比例的均值
    MEAN_ABSOLUTE_PERCENTAGE_ERROR,
    //（Mean Squared Logarithmic Error Loss，平均平方对数误差损失）: 计算的是模型预测的对数和实际的对数之间的差的平方的均值。
    MEAN_SQUARED_LOGARITHMIC_ERROR,
    //（Poisson Loss，泊松损失）: 在泊松回归中常用。
    POISSON,
    //（Wasserstein Loss，瓦氏损失）: 在生成对抗网络（GANs）和一些其他类型的神经网络中常用。
    WASSERSTEIN;
}
